![AWS Elemental MediaLive のリザーブド料金の仕組みを整理してみる](https://devio2023-media.developers.io/wp-content/uploads/2019/05/aws-elemental-medialive.png)
AWS Elemental MediaLive のリザーブド料金の仕組みを整理してみる
こんにちは、大前です。本日 7/7 はクラスメソッドの創立記念日らしいです、おめでとうございます。
この記事では AWS Elemental MediaLive に存在するリザーブド料金についてまとめてみたいと思います。
「リザーブド」というと EC2 や RDS のリザーブドインスタンスをよく耳にするかと思いますが、MediaLive にもリザーブドの料金が存在するため、MediaLive の利用料の大きいワークロードではこのリザーブド料金を活用する事でコストの最適化をはかる事ができます。
一方で、そもそも MediaLive のリザーブド料金の仕組みをきちんと理解しないまま購入を進めてしまうと最悪の場合コストの増大に繋がる可能性もあります。この記事をスタートとして、MediaLive のリザーブド料金について理解を深めてみてください。
(復習) MediaLive の料金体系
リザーブド料金の仕組みを理解するためには前提として MediaLive の料金体系を理解しておく必要があります。
詳しくは上記ブログで解説していますが、結論としては MediaLive で発生する料金は以下の 6種類となっています。一般的な用途であれば 1~5 だけを意識しておけば良いと思います。
- チャンネルに紐づく入力料金
- チャンネルに紐づく出力料金
- アドオン機能料金
- データ転送料金
- アイドルリソース(利用されていない入力・チャンネル)に発生する料金
- Statmux 出力料金
MediaLive リザーブド料金
MediaLive で発生する 6種類の料金のうち、リザーブド料金が用意されているのは以下になります。
- チャンネルに紐づく入力料金
- チャンネルに紐づく出力料金
- アドオン機能料金
- Statmux 出力料金
詳細な仕組みについては後述しますが、1~4 はそれぞれ独立しているので、例えば「アドオン機能料金のリザーブドだけ購入して、他は引き続きオンデマンドで利用」の様な事も可能です。
また、MediaLive の料金ページ には以下の様に通常の料金と合わせてリザーブドの料金も並んで表示されているので、リザーブドにするとどのくらい単価が下がるのか確認しやすい形になっています。
例えば、東京リージョンにおいて AVC 入力/SD/10Mbps/標準チャネルの場合、それぞれ以下の料金となります。ざっくりですが、リザーブドの方が 75% ほど安い設定になっている事がわかります。
- オンデマンド ... 0.204USD
- リザーブド ... 0.0507USD
契約・課金体系
MediaLive リザーブド料金は 12ヶ月単位での契約となります。Statmux 出力料金のみ、3年もしくは5年のリザーブドが購入可能にとなっている様です。
最も重要なのは、料金ページにも記載のある通り毎時間ごとに課金が発生する点です。
リザーブド料金: 入力、出力、アドオン機能を 12 か月間の契約設定でご利用いただけます。オンデマンド料金に比べ、大幅な割引を受けることができます。契約設定している 12 か月の間、毎時間ごとにこのレートが課金されます。
通常、MediaLive は配信を実行している(=チャンネルを稼働)時間に応じた課金になるため、1時間だけチャンネルを動かしたら 1時間分の課金のみ発生しますが、リザーブド料金は 24時間常に課金が発生する形となります。
例えば、1日のうち 6:00-12:00 の間だけ MediaLive による配信を行ったケースを考えます。 オンデマンドの場合は配信を行なった 6:00-12:00 に対して課金が発生しますが、リザーブドを契約している場合は配信の有無にかかわらず料金が発生します。(実際にはアイドルリソースの課金なども存在しますが、わかりやすくするため考慮外としています)
適用の仕組み
上記の課金の仕組みをみると、「24時間配信し続けている様なチャンネルを持っていないとリザーブド料金は買う意味がないのか?」と思うかもしれませんが、そんな事はありません。一つ一つの配信時間は短くても、複数のチャンネルを稼働させているワークロードではリザーブド料金の恩恵を受けられる可能性があります。
公式ドキュメントに記載のある、「予約とは、特定の入力設定または出力設定への 1 年間のコミットメントです」がポイントになります。
MediaLive のリザーブド料金は、MediaLive の入力や出力の設定を購入する様なイメージとなります。具体的な例をあげると、入力に関するリザーブド料金を購入する場合、以下の要素を指定して購入を進める形になります。
- コーデック
- 解像度 (範囲)
- ビットレート (範囲)
- 入力が実行されるリージョン
例えば、以下の様な条件で入力に関するリザーブド料金を購入したとします。
- コーデック ... AVC
- 解像度 (範囲) ... SD
- ビットレート (範囲) ... 10Mbps未満
- 入力が実行されるリージョン ... 東京
上記条件の場合、オンデマンド料金は 0.204USD、リザーブドは 0.0507USD となります。MediaLive は、上記条件に一致する課金が発生する場合に購入済みのリザーブド料金を自動的に適用します。
例えば、購入したリザーブド料金の条件(AVC/SD/10Mbps未満/東京)に一致する入力が 2つ存在し、入力A は 9:00-12:00、入力B が 15:00-21:00 で稼働した場合、入力A と 入力B はリソースとしては別ですが、どちらも購入済みのリザーブド料金の条件に一致しているため、リザーブド料金の課金でカバーされます。
そのため、同じ設定の入力や出力が大量に存在している場合、1つ1つの配信時間は短くてもリザーブド料金が有効に働くケースが存在します。
一方で、購入したリザーブド料金 1つにつき、1時間あたり60分のみ適用可能である事に注意が必要です。具体的には、条件に一致する課金が同時に存在する場合に注意が必要です。
公式ドキュメント で紹介されている 2つのパターンを噛み砕いて説明したいと思います。
パターン1
どちらも購入済みのリザーブド料金条件に一致する入力 A,B が存在し、それぞれ以下のタイミングで配信をします。
- 入力A ... 00:00 - 00:45
- 入力B ... 00:30 - 1:00
この時、ポイントとなるのは入力A と入力B の配信時間が被っている 00:30 - 00:45 です。
この1時間(00:00-1:00)では上記の配信が被っている時間以外も常に条件に一致する入力が存在するため、00:30 - 00:45 には 15分だけしかリザーブド料金が適用されません。
そのため、発生する課金イメージとしては以下の様になります。1時間で入力は1時間15分稼働していますが、上記の「購入したリザーブド料金 1つにつき、1時間あたり60分のみ適用可能」というルールに基づき、溢れた 15分はオンデマンドで請求される形になります。
- 入力A
- 00:00 - 00:45 → リザーブド料金
- 入力B
- 00:30 - 00:45 → オンデマンド料金
- 00:45 - 1:00 → リザーブド料金
パターン2
購入済みのリザーブド料金条件に一致する入力 A,B,C,D が存在し、それぞれ以下のタイミングで配信をします。
- 入力A ... 00:00 - 00:15
- 入力B ... 00:00 - 00:15
- 入力C ... 00:00 - 00:15
- 入力D ... 00:00 - 00:15
この時、同じタイミングで 4つもリソースが稼働していますが、トータルの稼働時間としては 60分となり、1時間を超えていないため全てリザーブド料金でカバーされます。
上記適用の仕組みからわかる通り、以下に気をつけて購入戦略を立てる必要があります。逆に言えば、以下を整理できれば適切なリザーブド料金の購入を進められるはずです。
- リザーブド料金を購入しようとしている対象リソースの稼働割合
- 購入したリザーブド料金の条件に一致するリソースの1時間あたりの稼働合計が 60分を超えていないか
おわりに
MediaLive のリザーブド料金の紹介と、適用の仕組みについてまとめてみました。まだ細かい部分を理解しきれていない部分もあるので、引き続きキャッチアップしていきたいと思います。
以上、AWS 事業本部の大前でした。